/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import Dao.CidadeDao;
import Dao.ClienteDao;
import Dao.FabricaConexao;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Diego
 */
public class ClienteModel {

    private int CodCliente;
    private String NomeCliente;
    private String CpfCliente;
    private String LogradouroCliente;
    private String BairroCliente;
    private int NumeroCliente;
    private CidadeModel CidadeCliente;

    /**
     * @return the CodCliente
     */
    public ClienteModel() {
        this.CodCliente =-1;
        this.NomeCliente="";
        this.CpfCliente ="";
        this.BairroCliente="";
        this.LogradouroCliente="";
        this.NumeroCliente=0;
        
   //     this.CidadeCliente=null;       
    
    }

    public int getCodCliente() {
        return CodCliente;
    }

    /**
     * @param CodCliente the CodCliente to set
     */
    public void setCodCliente(int CodCiente) {
        this.CodCliente = CodCiente;
    }

    /**
     * @return the NomeCliente
     */
    public String getNomeCliente() {
        return NomeCliente;
    }

    /**
     * @param NomeCliente the NomeCliente to set
     */
    public void setNomeCliente(String NomeCliente) {
        this.NomeCliente = NomeCliente;
    }

    /**
     * @return the CpfCliente
     */
    public String getCpfCliente() {
        return CpfCliente;
    }

    /**
     * @param CpfCliente the CpfCliente to set
     */
    public void setCpfCliente(String CpfCliente) {
        this.CpfCliente = CpfCliente;
    }

    /**
     * @return the LogradouroCliente
     */
    public String getLogradouroCliente() {
        return LogradouroCliente;
    }

    /**
     * @param LogradouroCliente the LogradouroCliente to set
     */
    public void setLogradouroCliente(String LogradouroCliente) {
        this.LogradouroCliente = LogradouroCliente;
    }

    /**
     * @return the BairroCliente
     */
    public String getBairroCliente() {
        return BairroCliente;
    }

    /**
     * @param BairroCliente the BairroCliente to set
     */
    public void setBairroCliente(String BairroCliente) {
        this.BairroCliente = BairroCliente;
    }

    /**
     * @return the NumeroCliente
     */
    public int getNumeroCliente() {
        return NumeroCliente;
    }

    /**
     * @param NumeroCliente the NumeroCliente to set
     */
    public void setNumeroCliente(int NumeroCliente) {
        this.NumeroCliente = NumeroCliente;
    }
     public CidadeModel getCidadeCliente() {
        return CidadeCliente;
    }

    /**
     * @param CidadeCliente the CidadeCliente to set
     */
    public void setCidadeCliente(CidadeModel CidadeCliente) {
        this.CidadeCliente = CidadeCliente;
    }

    public void setProximoCodigo() {
        int ProximoCodigo = ClienteDao.PegaCodPelaNavegacao(ClienteDao.cNavUltimo, 0);
        this.CodCliente = ProximoCodigo + 1;
    }

    public void Salvar() {
        ClienteDao.Salvar(this);
    }

    public void RecuperaObjeto(int iCod) {
        ClienteModel ClienteTemp = ClienteDao.RecuperarCliente(iCod);
        this.setCodCliente(ClienteTemp.getCodCliente());
        this.setNomeCliente(ClienteTemp.getNomeCliente());
        this.setCpfCliente(ClienteTemp.getCpfCliente());
        this.setLogradouroCliente(ClienteTemp.getLogradouroCliente());
        this.setBairroCliente(ClienteTemp.getBairroCliente());
        this.setNumeroCliente(ClienteTemp.getNumeroCliente());
        this.setCidadeCliente(ClienteTemp.getCidadeCliente());
       

    }

    public void Atualizar() {
        ClienteDao.Alterar(this);
    }

    public void Excluir(int CodAtual) {
        ClienteDao.Excluir(CodAtual);
    }

    public void RecuperaObjetoNaveg(int op, int iCod) {
        int CodNav = ClienteDao.PegaCodPelaNavegacao(op, iCod);
        RecuperaObjeto(CodNav);
    }
    
    public List<CidadeModel> RetornaCidades() {
        CidadeModel Cidade = new CidadeModel();
        List<CidadeModel> Cidades = new ArrayList<CidadeModel>();
        Cidades = Cidade.RetornaCidades();
        return Cidades;        
    }

    public ArrayList<ClienteModel> RecuperaObjetos(String Campo, String Valor, boolean EmQualquerParte) {
         String NomeCampo="";
        if(Campo.equals("0")){
            NomeCampo="NOME_CLI";
        }else if(Campo.equals("1")){
            NomeCampo="CPF_CLI";
       /* }else{
            NomeCampo="CIDADE_CLI";
             */ 
        }
        return ClienteDao.PesquisaObjeto(NomeCampo, Valor, EmQualquerParte);
    
    }

    /**
     * @return the CidadeCliente
     */
   
    
}
